home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / games / wormwars / source / system.h < prev    next >
C/C++ Source or Header  |  2004-08-03  |  44KB  |  1,058 lines

  1. // #INCLUDES --------------------------------------------------------------
  2.  
  3. #include <exec/exec.h>
  4. #include <exec/memory.h>
  5. #include <pragmas/exec_pragmas.h>
  6. #include <clib/exec_protos.h>
  7. #include <exec/execbase.h>
  8.  
  9. #include <intuition/intuition.h>
  10. #include <intuition/gadgetclass.h>   /* STRINGA_ReplaceMode */
  11. #include <intuition/intuitionbase.h> /* struct IntuitionBase */
  12. #include <pragmas/intuition_pragmas.h>
  13.  
  14. // #include <pragmas/asl_pragmas.h>
  15. #include <libraries/asl.h>           /* ASL_FileRequest */
  16.  
  17. #include <libraries/gadtools.h>      /* struct StringInfo */
  18. #include <pragmas/gadtools_pragmas.h>
  19.  
  20. #include <devices/audio.h>
  21. #include <devices/gameport.h>        /* struct GamePortTrigger */
  22.  
  23. // #include <pragmas/dos_pragmas.h>
  24. #include <dos/dosextens.h>           /* struct Process */
  25. #include <dos/dos.h>
  26.  
  27. #include <graphics/gfxbase.h>
  28. #include <graphics/displayinfo.h>    /* PAL_MONITOR_ID, etc. */
  29. #include <pragmas/graphics_pragmas.h>
  30.  
  31. #include <libraries/iffparse.h>
  32. #include <pragmas/iffparse_pragmas.h>
  33.  
  34. #include <utility/date.h>            /* struct DateStamp */
  35. #include <pragmas/utility_pragmas.h>
  36.  
  37. #include <workbench/workbench.h>     /* struct DiskObject */
  38. #include <pragmas/wb_pragmas.h>
  39.  
  40. #include <hardware/cia.h>            /* struct CIA */
  41.  
  42. #include <libraries/lowlevel.h>
  43.  
  44. // #include <libraries/amigaguide.h>
  45.  
  46. #include <stdio.h>                   /* FILE, printf() */
  47. #include <stdlib.h>                  /* EXIT_SUCCESS, EXIT_FAILURE */
  48.  
  49. #include "diff.h"
  50. #include "same.h"
  51. #include "libproto.h"
  52.  
  53. /* joysticks */
  54.  
  55. #define JOYUP          1
  56. #define JOYDOWN        2
  57. #define JOYLEFT        4
  58. #define JOYRIGHT       8
  59. #define JOYFIRE1      16
  60. #define JOYFIRE2      32
  61. #define POTGOR         *(UWORD *)0xDFF016     
  62.  
  63. #define OLD            1
  64. #define NEW            0
  65.  
  66. /* #DEFINES ---------------------------------------------------------------
  67.  
  68. Help|About... window */
  69.  
  70. #define ABOUTLINES     6
  71. #define ABOUTSHADOW    DARKGREY
  72. #define ABOUTSHINE     LIGHTGREY
  73. #define PROJECTX     128
  74. #define PROJECTY      75
  75. #define KICKSTARTX   104
  76. #define KICKSTARTY    91
  77. #define WORKBENCHX   104
  78. #define WORKBENCHY    99
  79.  
  80. /* fxable/musicable */
  81.  
  82. #define FAILED         0 // tried and failed
  83. #define SUCCEEDED      1 // tried and succeeded
  84. #define UNTRIED        2 // untried, will try at startup
  85. #define DEFER          3 // untried, will try when needed
  86.  
  87. /* miscellaneous */
  88.  
  89. #define ANIMDELAY   1800
  90. #define ENTIREXPIXEL 640
  91. #define ENTIREYPIXEL 512
  92. #define MAXXSIZE    1280
  93. #define MAXYSIZE    1024
  94. #define CENTREXPIXEL (DisplayWidth  / 2)
  95. #define CENTREYPIXEL (DisplayHeight / 2)
  96. #define YSTART       (CENTREYPIXEL - 200)
  97. #define FIELDCENTREXPIXEL (STARTXPIXEL + ((ENDXPIXEL - STARTXPIXEL) / 2))
  98. #define FIELDCENTREYPIXEL (STARTYPIXEL + ((ENDYPIXEL - STARTYPIXEL) / 2))
  99.  
  100. /* constant strings used more than once */
  101.  
  102. #define PATTERN        "(#?.lset)"
  103. #define OLDKICKSTART   "Worm Wars: You need Kickstart R2.04+!\n(Can't open intuition.library V37+!)\n"
  104.  
  105. /* ARRAYS ---------------------------------------------------------------- */
  106.  
  107. #define CREATUREHELPS 25
  108. struct
  109. {   UBYTE  image;
  110.     STRPTR desc;
  111. } creaturehelp[CREATUREHELPS + 1] =
  112. {   {ANT,           "Ant"       },
  113.     {BIRD,          "Bird"      },
  114.     {BULL,          "Bull"      },
  115.     {CAMEL,         "Camel"     },
  116.     {CLOUD,         "Cloud"     },
  117.     {CYCLONE_C,     "Cyclone"   },
  118.     {DOG,           "Dog"       },
  119.     {FISH,          "Fish"      },
  120.     {FROG,          "Frog"      },
  121.     {GIRAFFE,       "Giraffe"   },
  122.     {GOOSE,         "Goose"     },
  123.     {HORSE,         "Horse"     },
  124.     {KANGAROO,      "Kangaroo"  },
  125.     {MONKEY,        "Monkey"    },
  126.     {MOUSE,         "Mouse"     },
  127.     {ORB,           "Orb"       },
  128.     {OCTOPUS,       "Octopus"   },
  129.     {OTTER,         "Otter"     },
  130.     {LASTPROTECTOR, "Protector" },
  131.     {RABBIT,        "Rabbit"    },
  132.     {RAIN,          "Rain"      },
  133.     {SALAMANDER,    "Salamander"},
  134.     {SLIME,         "Slime"     },
  135.     {SNAIL,         "Snail"     },
  136.     {SPIDER,        "Spider"    },
  137.     {LASTHEAD,      "Worm"      }
  138. };
  139.  
  140. STRPTR objectdesc[LASTOBJECT + 1] =
  141. {   "AFFIXER: Stops protectors rotating.",
  142.     "AMMO: 5 bullets.",
  143.     "ARMOUR: Immune to most damage.",
  144.     "AUTOJUMP: Automagically jump. :-)",
  145.     "BONUS: Awards the next number.",
  146.     "BRAKES: Enables very slow speed.",
  147.     "CONVERTER: Fragments to missiles.",
  148.     "CUTTER: Cuts a tunnel through tail.",
  149.     "CYCLONE: Unleashes a cyclone.",
  150.     "ENCLOSER: Rectangular enclosure.",
  151.     "GLOW: Leaves a glowing tail.",
  152.     "GROWER: Enlarges silver and gold.",
  153.     "ICE: Freezes enemies.",
  154.     "LIGHTNING: Flashes around tail.",
  155.     "MAGNET: Attracts objects.",
  156.     "MINI BOMB: A minor explosion.",
  157.     "MINI HEALER: 5 lives.",
  158.     "MISSILE: A guided missile.",
  159.     "MULTIPLIER: More points.",
  160.     "POWER: Thicker bullets.",
  161.     "PROTECTOR: An orbiting companion.",
  162.     "PULSE: Fragment explosion.",
  163.     "PUSHER: Lets you push things.",
  164.     "REMNANTS: Bullets leave a trail.",
  165.     "SIDESHOT: Shoot sideways.",
  166.     "SLAYER: Smart bomb.",
  167.     "SLOWER: Slows creatures down.",
  168.     "SUPER BOMB: A major explosion.",
  169.     "SUPER HEALER: 20 lives.",
  170.     "SWITCHER: Changes tail colours.",
  171.     "TREASURE: Treasure level.",
  172.     "UMBRELLA: Skips 2-3 levels."
  173. };
  174.  
  175. UWORD chip LogoData[8360] =
  176. {
  177. 61440,0,120,0,0,0,0,0,0,0,3,65535,65535,61440,0,0,0,0,0,
  178. 61440,0,120,0,0,0,0,0,0,0,15,65535,65535,64512,0,0,0,0,0,
  179. 61440,768,120,0,0,0,0,0,0,16,15,65535,65535,65024,0,0,0,0,0,
  180. 61440,4032,120,0,0,0,0,0,0,0,31,65535,65535,65024,0,0,0,0,0,
  181. 61440,8160,120,0,0,0,0,15,65535,64520,31,65535,65535,65280,0,0,0,0,0,
  182. 61440,16368,120,0,0,0,0,15,65535,65036,31,65535,65535,65408,0,0,0,0,0,
  183. 61440,15216,120,0,0,0,0,15,65535,65294,31,65535,65535,65472,0,0,0,0,0,
  184. 61440,16368,120,0,0,0,0,14,0,14,31,57345,64512,8128,0,0,0,0,0,
  185. 61440,8160,120,0,0,0,0,14,0,14,31,57345,64512,8128,0,0,0,0,0,
  186. 61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
  187. 61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
  188. 61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
  189. 61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
  190. 61440,1920,120,0,0,0,0,14,0,14,31,49153,64512,8128,0,0,0,0,0,
  191. 61440,1920,120,0,0,0,0,14,0,126,31,49153,64512,8128,0,0,0,0,0,
  192. 61440,1920,120,0,0,0,0,14,0,62,31,49153,64512,8128,0,0,0,0,0,
  193. 61440,1920,120,0,0,0,0,14,0,30,31,49153,64512,8128,0,0,0,0,0,
  194. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  195. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  196. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  197. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  198. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  199. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  200. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  201. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  202. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  203. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  204. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  205. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  206. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  207. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  208. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  209. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  210. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  211. 61440,1920,120,0,0,0,0,14,0,0,31,49153,64512,8128,0,0,0,0,0,
  212. 61440,1920,120,0,0,0,0,2,0,0,31,49153,64512,8128,0,0,0,0,0,
  213. 61440,1920,120,0,0,0,0,924,0,0,31,49159,64512,8128,0,0,0,0,0,
  214. 61440,1920,120,0,0,0,0,780,0,0,31,49167,64512,8128,0,0,0,0,0,
  215. 63488,1920,248,0,0,0,0,0,0,0,31,49166,56320,8128,0,0,0,0,0,
  216. 64512,1920,504,0,0,0,0,0,0,0,31,49167,64512,8128,0,0,0,0,0,
  217. 65535,65535,65528,0,0,0,0,0,0,0,31,49159,63488,8128,0,0,0,0,0,
  218. 32767,65535,65520,0,0,0,0,0,0,0,31,49155,61440,8128,0,0,0,0,0,
  219. 32767,65535,65520,0,0,0,0,0,0,0,31,49152,49152,8128,0,0,0,0,0,
  220. 8191,65535,65472,0,0,0,0,0,0,0,31,49152,0,8128,0,0,0,0,0,
  221. 0,0,0,0,0,0,0,0,0,0,31,49152,0,8128,0,0,0,0,0,
  222. 0,0,0,0,0,0,0,0,0,0,15,49152,0,4032,0,0,0,0,0,
  223. 0,0,0,0,0,0,0,0,0,0,7,49152,0,1984,0,0,0,0,0,
  224. 0,0,0,0,0,0,0,0,0,0,3,49152,0,960,0,0,0,0,0,
  225. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  226. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  227. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  228. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  229. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  230. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  231. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  232. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  233. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  234. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  235. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  236. 0,0,0,0,0,0,0,0,0,0,0,0,1,49152,0,0,0,0,0,
  237. 0,0,0,0,6144,0,0,0,0,0,0,0,3,57344,0,0,0,0,0,
  238. 0,0,0,0,6144,0,0,0,0,0,0,0,3,61440,0,0,0,0,0,
  239. 0,0,0,0,2048,0,0,0,0,0,1,65535,65535,28672,0,0,0,0,0,
  240. 61440,0,120,0,0,0,0,0,0,0,3,65535,65535,63488,0,0,0,0,0,
  241. 63488,0,124,0,0,0,0,0,0,0,15,65535,65535,63488,0,0,0,0,0,
  242. 64512,768,126,0,2048,0,128,0,0,0,15,65535,65535,28672,0,0,0,0,0,
  243. 65024,4032,127,0,7167,65535,49152,0,0,0,31,49152,3,61440,0,0,0,0,0,
  244. 65024,8160,127,0,7167,65535,61504,0,0,0,31,0,3,57344,0,0,0,0,0,
  245. 65024,16368,127,0,2047,65535,61536,0,0,0,31,0,1,49152,0,0,0,0,0,
  246. 65024,15216,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  247. 65024,16368,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  248. 65024,8176,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  249. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  250. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  251. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  252. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  253. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  254. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  255. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  256. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  257. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  258. 65024,2032,127,0,0,0,112,0,0,0,30,0,0,0,0,0,0,0,0,
  259. 65024,2032,127,0,0,0,112,0,0,0,31,0,0,0,0,0,0,0,0,
  260. 65024,2032,127,0,0,0,112,0,0,0,31,32768,0,0,0,0,0,0,0,
  261. 65024,2032,127,0,0,0,112,0,0,0,31,65535,65535,57344,0,0,0,0,0,
  262. 65024,2032,127,0,0,0,112,0,0,0,15,65535,65535,61440,0,0,0,0,0,
  263. 65024,2032,127,0,0,0,112,0,0,0,15,65535,65535,64512,0,0,0,0,0,
  264. 65024,2032,127,0,0,0,112,0,0,0,3,65535,65535,64512,0,0,0,0,0,
  265. 65024,2032,127,0,4095,65535,63600,0,0,0,0,0,0,65024,0,0,0,0,0,
  266. 65024,2032,127,0,16383,65535,63600,0,0,0,0,0,0,15872,0,0,0,0,0,
  267. 65024,2032,127,0,16383,65535,63600,0,0,0,0,0,0,15872,0,0,0,0,0,
  268. 65024,2032,127,0,32256,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  269. 65024,2032,127,0,30720,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  270. 65024,2032,127,0,30720,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  271. 65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  272. 65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  273. 65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  274. 65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  275. 65024,2032,127,0,28672,0,112,0,0,0,0,0,0,7680,0,0,0,0,0,
  276. 65024,2032,127,0,28672,0,112,924,0,0,0,0,0,7680,0,0,0,0,0,
  277. 65024,2032,127,0,28672,0,112,780,0,0,0,0,0,7680,0,0,0,0,0,
  278. 65024,2032,255,0,12288,0,112,0,0,0,0,0,0,15872,0,0,0,0,0,
  279. 65024,2032,511,0,12288,0,112,0,0,0,0,0,0,32256,0,0,0,0,0,
  280. 65535,65535,65535,0,0,0,112,0,0,0,31,65535,65535,65024,0,0,0,0,0,
  281. 32767,65535,65535,0,0,0,240,0,0,0,31,65535,65535,64512,0,0,0,0,0,
  282. 32767,65535,65535,0,0,0,240,0,0,0,31,65535,65535,64512,0,0,0,0,0,
  283. 16383,65535,65535,1,0,0,1008,0,0,0,31,65535,65535,61440,0,0,0,0,0,
  284. 4095,65535,65534,0,32767,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
  285. 2047,65535,65534,0,16383,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
  286. 1023,65535,65528,0,8191,65535,65408,0,0,0,0,0,0,0,0,0,0,0,0,
  287. 61440,768,120,0,65535,65535,64512,255,65535,65408,3,65535,65535,61440,0,0,0,0,0,
  288. 63488,768,124,3,65535,65535,65280,255,65535,65504,15,65535,65535,64512,0,0,0,0,0,
  289. 64512,768,126,3,65535,65535,65280,255,65535,65504,15,65535,65535,65024,0,0,0,0,0,
  290. 65024,4032,127,7,65535,65535,65408,255,65535,65520,31,65535,65535,65024,0,0,0,0,0,
  291. 65024,8160,127,7,57344,0,8064,240,0,1008,31,65535,65535,65280,255,65535,65535,65535,61440,
  292. 65024,16368,127,7,49152,0,3968,240,0,496,31,65535,65535,65408,255,65535,65535,65535,61440,
  293. 65024,15216,127,7,32768,0,1920,240,0,240,31,65535,65535,65472,255,65535,65535,65535,57344,
  294. 65024,16368,127,7,32768,0,1920,240,0,240,31,57345,64512,8128,255,65535,65535,65535,57344,
  295. 65024,8176,127,7,32768,0,1920,240,0,240,31,57345,64512,8128,255,65535,65535,65535,57344,
  296. 65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,15,49152,
  297. 65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,15,49152,
  298. 65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,15,49152,
  299. 65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,31,32768,
  300. 65024,2032,127,7,32768,0,1920,240,0,240,31,49153,64512,8128,0,0,0,31,32768,
  301. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,31,32768,
  302. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,31,32768,
  303. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,63,0,
  304. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,63,0,
  305. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,63,0,
  306. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,126,0,
  307. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,126,0,
  308. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,126,0,
  309. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,252,0,
  310. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,252,0,
  311. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,252,0,
  312. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,504,0,
  313. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,504,0,
  314. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,504,0,
  315. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,1008,0,
  316. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,1008,0,
  317. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,1008,0,
  318. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
  319. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
  320. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
  321. 65024,2032,127,7,32768,0,1920,240,0,0,31,49153,64512,8128,0,0,0,2016,0,
  322. 65024,2032,127,7,32768,0,1920,1020,0,0,31,49153,64512,8128,0,0,0,4032,0,
  323. 65024,2032,127,7,32768,0,1920,2046,0,0,31,49159,64512,8128,0,0,0,4032,0,
  324. 65024,2032,127,7,32768,0,1920,1902,0,0,31,49167,64512,8128,0,0,0,4032,0,
  325. 65024,2032,255,7,49152,0,3968,2046,0,0,31,49166,56320,8128,0,0,0,8064,0,
  326. 65024,2032,511,7,57344,0,8064,1020,0,0,31,49167,64512,8128,0,0,0,8064,0,
  327. 65535,65535,65535,7,65535,65535,65408,504,0,0,31,49159,63488,8128,0,0,0,8064,0,
  328. 32767,65535,65535,3,65535,65535,65280,96,0,0,31,49155,61440,8128,0,0,0,16128,0,
  329. 32767,65535,65535,3,65535,65535,65280,96,0,0,31,49152,49152,8128,0,0,0,16128,0,
  330. 16383,65535,65535,0,65535,65535,64512,96,0,0,31,49152,49152,8128,0,0,0,16128,0,
  331. 4095,65535,65534,0,0,0,0,0,0,0,31,49152,49152,8128,0,0,0,32256,0,
  332. 2047,65535,65534,0,0,0,0,0,0,0,15,49152,0,4032,0,0,0,32256,0,
  333. 1023,65535,65528,0,0,0,0,0,0,0,7,49152,0,1984,0,0,0,32256,0,
  334. 0,0,0,0,0,0,0,0,0,0,3,49152,0,960,0,0,0,64512,0,
  335. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
  336. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
  337. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
  338. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
  339. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
  340. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,63488,0,
  341. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
  342. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
  343. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,61440,0,
  344. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
  345. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
  346. 0,0,0,0,14336,0,0,0,0,0,0,0,1,49152,0,0,15,57344,0,
  347. 0,0,0,0,31744,0,0,0,0,0,0,0,3,57344,0,0,15,49152,0,
  348. 0,0,0,0,64512,0,0,0,0,0,0,0,3,61440,0,0,15,49152,0,
  349. 0,0,0,0,61439,65535,63488,255,65535,65280,1,65535,65535,28672,0,0,31,49152,0,
  350. 61440,768,120,7,65535,65535,64512,255,65535,65408,3,65535,65535,65024,0,0,31,32768,0,
  351. 63488,768,124,7,65535,65535,65280,255,65535,65504,15,65535,65535,65024,0,0,31,32768,0,
  352. 64512,768,126,0,61439,65535,65280,255,65535,65504,15,65535,65535,28672,0,0,63,32768,0,
  353. 65024,4032,127,0,64512,0,16256,240,0,2032,31,65535,65535,61440,0,0,63,0,0,
  354. 65024,8160,127,0,31744,0,3968,240,0,496,31,65535,65535,57344,0,0,63,0,0,
  355. 65024,16368,127,0,14336,0,3968,240,0,496,31,65535,65535,49152,0,0,127,0,0,
  356. 65024,15216,127,0,0,0,1920,240,0,240,31,63488,0,0,0,0,126,0,0,
  357. 65024,16368,127,0,0,0,1920,240,0,240,31,57344,0,0,0,0,126,0,0,
  358. 65024,8176,127,0,0,0,1920,240,0,240,31,57344,0,0,0,0,254,0,0,
  359. 65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,252,0,0,
  360. 65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,252,0,0,
  361. 65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,508,0,0,
  362. 65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,508,0,0,
  363. 65024,2032,127,0,0,0,1920,240,0,240,31,49152,0,0,0,0,504,0,0,
  364. 65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,1016,0,0,
  365. 65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,1016,0,0,
  366. 65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,1008,0,0,
  367. 65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,2032,0,0,
  368. 65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,2032,0,0,
  369. 65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,2016,0,0,
  370. 65024,2032,127,0,0,0,1920,240,0,0,31,49152,0,0,0,0,4064,0,0,
  371. 65024,2032,127,0,32767,65535,65408,240,0,0,31,65535,65535,57344,0,0,4064,0,0,
  372. 65024,2032,127,0,65535,65535,65408,240,0,0,15,65535,65535,61440,0,0,4032,0,0,
  373. 65024,2032,127,3,65535,65535,65408,240,0,0,15,65535,65535,64512,0,0,8128,0,0,
  374. 65024,2032,127,3,65535,65535,65408,240,0,0,7,65535,65535,65024,0,0,8128,0,0,
  375. 65024,2032,127,7,61440,0,1920,240,0,0,1,65535,65535,65024,0,0,8064,0,0,
  376. 65024,2032,127,7,49152,0,1920,240,0,0,0,65535,65535,65280,0,0,16256,0,0,
  377. 65024,2032,127,7,49152,0,1920,240,0,0,0,32767,65535,65408,0,0,16256,0,0,
  378. 65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,16128,0,0,
  379. 65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,32512,0,0,
  380. 65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,32512,0,0,
  381. 65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,32512,0,0,
  382. 65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,65024,0,0,
  383. 65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,65024,0,0,
  384. 65024,2032,127,7,32768,0,1920,240,0,0,0,0,0,8128,0,0,65024,0,0,
  385. 65024,2032,127,7,32768,0,1920,1020,0,0,0,0,0,8128,0,1,64512,0,0,
  386. 65024,2032,127,7,32768,0,1920,2046,0,0,0,0,0,8128,0,1,64512,0,0,
  387. 65024,2032,127,7,32768,0,1920,1902,0,0,0,0,0,8128,0,1,64512,0,0,
  388. 65024,2032,255,7,49152,0,3968,2046,0,0,0,0,0,16320,0,3,63488,0,0,
  389. 65024,2032,511,7,49152,0,3968,1020,0,0,0,0,0,32704,0,3,63488,0,0,
  390. 65535,65535,65535,7,65535,65535,65408,504,0,0,31,65535,65535,65472,0,0,0,0,0,
  391. 32767,65535,65535,3,65535,65535,65280,96,0,0,31,65535,65535,65472,0,0,0,0,0,
  392. 32767,65535,65535,3,65535,65535,65280,96,0,0,31,65535,65535,65472,0,0,0,0,0,
  393. 16383,65535,65535,0,65535,65535,64512,96,0,0,31,65535,65535,65472,0,0,0,0,0,
  394. 4095,65535,65534,0,0,0,0,0,0,0,15,65535,65535,65408,0,0,0,0,0,
  395. 2047,65535,65534,0,0,0,0,0,0,0,7,65535,65535,65408,0,0,0,0,0,
  396. 1023,65535,65528,0,0,0,0,0,0,0,3,65535,65535,65024,0,0,0,0,0,
  397. 61440,0,120,0,0,0,0,255,65535,65408,0,0,0,0,0,0,0,0,0,
  398. 61440,0,120,0,0,0,0,255,65535,65504,0,0,0,0,0,0,0,0,0,
  399. 61440,768,120,0,0,0,0,255,65535,65520,0,0,0,0,0,0,0,0,0,
  400. 61440,4032,120,0,0,0,0,255,65535,65520,0,0,0,0,0,0,0,0,0,
  401. 61440,8160,120,0,0,0,0,255,65535,65528,0,0,0,0,255,65535,65535,65535,61440,
  402. 61440,16368,120,0,0,0,0,255,65535,65532,0,0,0,0,255,65535,65535,65535,63488,
  403. 61440,15216,120,0,0,0,0,255,65535,65534,0,0,0,0,255,65535,65535,65535,64512,
  404. 61440,16368,120,0,0,0,0,254,0,254,0,0,0,0,255,65535,65535,65535,65024,
  405. 61440,8160,120,0,0,0,0,254,0,254,0,0,0,0,255,65535,65535,65535,65024,
  406. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,127,65535,65535,65535,64512,
  407. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,63,65535,65535,65535,64512,
  408. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,31,65535,65535,65535,64512,
  409. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,0,31,63488,
  410. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,0,31,63488,
  411. 61440,1920,120,0,0,0,0,254,0,126,0,0,0,0,0,0,0,31,63488,
  412. 61440,1920,120,0,0,0,0,254,0,62,0,0,0,0,0,0,0,31,61440,
  413. 61440,1920,120,0,0,0,0,254,0,30,0,0,0,0,0,0,0,63,61440,
  414. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,63,61440,
  415. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,63,61440,
  416. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,127,57344,
  417. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,127,57344,
  418. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,127,57344,
  419. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,255,49152,
  420. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,255,49152,
  421. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,255,49152,
  422. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,511,32768,
  423. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,511,32768,
  424. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,511,32768,
  425. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,1023,0,
  426. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,1023,0,
  427. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,1023,0,
  428. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2046,0,
  429. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2046,0,
  430. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2046,0,
  431. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,0,2044,0,
  432. 61440,1920,120,0,0,0,0,1022,0,0,0,0,0,0,0,0,0,4092,0,
  433. 61440,1920,120,0,0,0,0,2046,0,0,0,0,0,0,0,0,0,4092,0,
  434. 61440,1920,120,0,0,0,0,1902,0,0,0,7,14336,0,0,0,0,4092,0,
  435. 63488,1920,248,0,0,0,0,2046,0,0,0,6,6144,0,0,0,0,8184,0,
  436. 64512,1920,504,0,0,0,0,1020,0,0,0,0,0,0,0,0,0,8184,0,
  437. 65535,65535,65528,0,0,0,0,504,0,0,0,0,0,0,0,0,0,8184,0,
  438. 32767,65535,65520,0,0,0,0,96,0,0,0,0,0,0,0,0,0,16368,0,
  439. 32767,65535,65520,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16368,0,
  440. 8191,65535,65472,0,0,0,0,0,0,0,0,0,49152,0,0,0,0,16368,0,
  441. 0,0,0,0,0,0,0,0,0,0,0,0,49152,0,0,0,0,32736,0,
  442. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32736,0,
  443. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32736,0,
  444. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65472,0,
  445. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65472,0,
  446. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65472,0,
  447. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,65408,0,
  448. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,65408,0,
  449. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,65408,0,
  450. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,65280,0,
  451. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,65280,0,
  452. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,65280,0,
  453. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,65280,0,
  454. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,65024,0,
  455. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,65024,0,
  456. 0,0,0,0,14336,0,0,0,0,0,0,0,1,49152,0,0,15,65024,0,
  457. 0,0,0,0,31744,0,0,0,0,0,0,0,3,57344,0,0,15,64512,0,
  458. 0,0,0,0,64512,0,0,0,0,0,0,0,3,61440,0,0,15,64512,0,
  459. 0,0,0,0,61439,65535,63488,0,0,0,1,65535,65535,28672,0,0,31,64512,0,
  460. 0,768,0,1,65535,65535,64512,0,0,0,3,65535,65535,63488,0,0,31,63488,0,
  461. 0,768,0,1,65535,65535,65280,0,0,0,15,65535,65535,63488,0,0,31,63488,0,
  462. 0,0,0,0,61439,65535,65408,0,0,0,15,65535,65535,28672,0,0,63,63488,0,
  463. 0,0,0,0,65535,65535,65408,0,0,0,31,49152,3,61440,0,0,63,61440,0,
  464. 0,0,0,0,32767,65535,65472,0,0,0,31,0,3,57344,0,0,63,61440,0,
  465. 0,0,0,0,16383,65535,65504,0,0,0,31,0,1,49152,0,0,127,61440,0,
  466. 0,6240,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,127,57344,0,
  467. 0,7392,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,127,57344,0,
  468. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,255,57344,0,
  469. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,255,49152,0,
  470. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,255,49152,0,
  471. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,511,49152,0,
  472. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,511,32768,0,
  473. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,511,32768,0,
  474. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,1023,32768,0,
  475. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,1023,32768,0,
  476. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,1023,0,0,
  477. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,2047,0,0,
  478. 0,0,0,0,0,0,2032,0,0,0,30,0,0,0,0,0,2047,0,0,
  479. 0,0,0,0,0,0,2032,0,0,0,31,0,0,0,0,0,2046,0,0,
  480. 0,0,0,0,0,0,2032,0,0,0,31,32768,0,0,0,0,4094,0,0,
  481. 0,0,0,0,32767,65535,65520,0,0,0,31,65535,65535,57344,0,0,4094,0,0,
  482. 0,0,0,0,65535,65535,65520,0,0,0,15,65535,65535,61440,0,0,4092,0,0,
  483. 0,0,0,3,65535,65535,65520,0,0,0,15,65535,65535,64512,0,0,8188,0,0,
  484. 0,0,0,3,65535,65535,65520,0,0,0,3,65535,65535,64512,0,0,8188,0,0,
  485. 0,0,0,7,65535,65535,65520,0,0,0,0,0,0,65024,0,0,8184,0,0,
  486. 0,0,0,7,65535,65535,65520,0,0,0,0,0,0,15872,0,0,16376,0,0,
  487. 0,0,0,7,65535,65535,65520,0,0,0,0,0,0,15872,0,0,16376,0,0,
  488. 0,0,0,7,65024,0,2032,0,0,0,0,0,0,7680,0,0,16368,0,0,
  489. 0,0,0,7,63488,0,2032,0,0,0,0,0,0,7680,0,0,32752,0,0,
  490. 0,0,0,7,63488,0,2032,0,0,0,0,0,0,7680,0,0,32752,0,0,
  491. 0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,32736,0,0,
  492. 0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,65504,0,0,
  493. 0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,65504,0,0,
  494. 0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,0,65504,0,0,
  495. 0,0,0,7,61440,0,2032,0,0,0,0,0,0,7680,0,1,65472,0,0,
  496. 0,0,0,7,61440,0,2032,924,0,0,0,0,0,7680,0,1,65472,0,0,
  497. 0,0,0,7,61440,0,2032,780,0,0,0,0,0,7680,0,1,65472,0,0,
  498. 0,0,0,7,61440,0,4080,0,0,0,0,0,0,15872,0,3,65408,0,0,
  499. 0,0,0,7,61440,0,4080,0,0,0,0,0,0,32256,0,3,65408,0,0,
  500. 0,0,0,7,65535,65535,65520,0,0,0,31,65535,65535,65024,0,1,65408,0,0,
  501. 0,0,0,3,65535,65535,65520,0,0,0,31,65535,65535,64512,0,0,65280,0,0,
  502. 0,0,0,3,65535,65535,65520,96,0,0,31,65535,65535,64512,0,0,32512,0,0,
  503. 0,0,0,1,65535,65535,65520,96,0,0,31,65535,65535,61440,0,0,0,0,0,
  504. 0,0,0,0,32767,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
  505. 0,0,0,0,16383,65535,65504,0,0,0,0,0,0,0,0,0,0,0,0,
  506. 0,0,0,0,8191,65535,65408,0,0,0,0,0,0,0,0,0,0,0,0,
  507. 0,768,0,0,65535,65535,64512,0,0,0,3,65535,65535,61440,0,0,0,0,0,
  508. 0,768,0,3,65535,65535,65280,0,0,0,15,65535,65535,64512,0,0,0,0,0,
  509. 0,0,0,3,65535,65535,65408,0,0,0,15,65535,65535,64512,0,0,0,0,0,
  510. 0,0,0,7,65535,65535,65408,0,0,0,31,65535,65535,65024,0,0,0,0,0,
  511. 0,0,0,7,65535,65535,65472,0,0,0,31,32769,57344,32256,255,65535,65535,65535,61440,
  512. 0,0,0,7,65535,65535,65504,0,0,0,31,1,57344,15872,255,65535,65535,65535,61440,
  513. 0,6240,0,7,65535,65535,65520,0,0,0,30,1,57344,7680,255,65535,65535,65535,57344,
  514. 0,7392,0,7,64512,0,2032,0,0,0,30,1,57344,7680,255,65535,65535,65535,57344,
  515. 0,0,0,7,63488,0,2032,0,0,0,30,1,57344,7680,255,65535,65535,65535,57344,
  516. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,15,49152,
  517. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,15,49152,
  518. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,15,49152,
  519. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
  520. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
  521. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
  522. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,31,32768,
  523. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,63,0,
  524. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,63,0,
  525. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,63,0,
  526. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,126,0,
  527. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,126,0,
  528. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,126,0,
  529. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,252,0,
  530. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,252,0,
  531. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,252,0,
  532. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,504,0,
  533. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,504,0,
  534. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,504,0,
  535. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,1008,0,
  536. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,1008,0,
  537. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,1008,0,
  538. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
  539. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
  540. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
  541. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,2016,0,
  542. 0,0,0,7,61440,0,2032,0,0,0,30,1,57344,7680,0,0,0,4032,0,
  543. 0,0,0,7,61440,0,2032,924,0,0,30,7,63488,7680,0,0,0,4032,0,
  544. 0,0,0,7,61440,0,2032,780,0,0,30,15,64512,7680,0,0,0,4032,0,
  545. 0,0,0,7,61440,0,4080,0,0,0,30,14,56320,7680,0,0,0,8064,0,
  546. 0,0,0,7,61440,0,8176,0,0,0,30,15,64512,7680,0,0,0,8064,0,
  547. 0,0,0,7,65535,65535,65520,0,0,0,30,7,63488,7680,0,0,0,8064,0,
  548. 0,0,0,3,65535,65535,65520,0,0,0,30,3,61440,7680,0,0,0,16128,0,
  549. 0,0,0,3,65535,65535,65520,96,0,0,30,0,49152,7680,0,0,0,16128,0,
  550. 0,0,0,1,65535,65535,65520,96,0,0,30,0,0,7680,0,0,0,16128,0,
  551. 0,0,0,0,32767,65535,65504,0,0,0,30,0,0,7680,0,0,0,32256,0,
  552. 0,0,0,0,16383,65535,65504,0,0,0,0,0,0,0,0,0,0,32256,0,
  553. 0,0,0,0,8191,65535,65408,0,0,0,0,0,0,0,0,0,0,32256,0,
  554. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
  555. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
  556. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64512,0,
  557. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
  558. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
  559. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,63488,0,
  560. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,63488,0,
  561. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
  562. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,61440,0,
  563. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,61440,0,
  564. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
  565. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,57344,0,
  566. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,57344,0,
  567. 0,0,0,0,6144,0,0,0,0,0,0,0,1,32768,0,0,15,49152,0,
  568. 0,0,0,0,6144,0,0,0,0,0,0,0,1,32768,0,0,15,49152,0,
  569. 0,0,0,0,2048,0,0,255,65535,65280,0,0,1,0,0,0,31,49152,0,
  570. 61440,0,120,6,0,0,0,255,65535,65408,0,0,0,1536,0,0,31,32768,0,
  571. 61440,0,120,6,0,0,0,255,65535,65504,0,0,0,1536,0,0,31,32768,0,
  572. 61440,768,120,0,2048,0,0,255,65535,65520,0,0,1,0,0,0,63,32768,0,
  573. 61440,4032,120,0,6144,0,0,255,65535,65520,0,0,1,32768,0,0,63,0,0,
  574. 61440,8160,120,0,6144,0,0,255,65535,65528,0,0,1,32768,0,0,63,0,0,
  575. 61440,16368,120,0,0,0,0,255,65535,65532,0,0,0,0,0,0,127,0,0,
  576. 61440,15216,120,0,0,0,0,254,0,254,0,0,0,0,0,0,126,0,0,
  577. 61440,16368,120,0,0,0,0,254,0,254,0,0,0,0,0,0,126,0,0,
  578. 61440,8160,120,0,0,0,0,254,0,254,0,0,0,0,0,0,254,0,0,
  579. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,252,0,0,
  580. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,252,0,0,
  581. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,508,0,0,
  582. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,508,0,0,
  583. 61440,1920,120,0,0,0,0,254,0,254,0,0,0,0,0,0,504,0,0,
  584. 61440,1920,120,0,0,0,0,254,0,126,0,0,0,0,0,0,1016,0,0,
  585. 61440,1920,120,0,0,0,0,254,0,62,0,0,0,0,0,0,1016,0,0,
  586. 61440,1920,120,0,0,0,0,254,0,30,0,0,0,0,0,0,1008,0,0,
  587. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,2032,0,0,
  588. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,2032,0,0,
  589. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,2016,0,0,
  590. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,4064,0,0,
  591. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,4064,0,0,
  592. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,4032,0,0,
  593. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,8128,0,0,
  594. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,8128,0,0,
  595. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,8064,0,0,
  596. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,16256,0,0,
  597. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,16256,0,0,
  598. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,16128,0,0,
  599. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,32512,0,0,
  600. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,32512,0,0,
  601. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,32512,0,0,
  602. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,65024,0,0,
  603. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,65024,0,0,
  604. 61440,1920,120,0,0,0,0,254,0,0,0,0,0,0,0,0,65024,0,0,
  605. 61440,1920,120,0,0,0,0,1022,0,0,0,0,0,0,0,1,64512,0,0,
  606. 61440,1920,120,0,0,0,0,2046,0,0,0,0,0,0,0,1,64512,0,0,
  607. 61440,1920,120,0,0,0,0,1902,0,0,0,0,0,0,0,1,64512,0,0,
  608. 63488,1920,248,0,0,0,0,2046,0,0,0,0,0,0,0,3,63488,0,0,
  609. 64512,1920,504,0,0,0,0,1020,0,0,0,0,0,0,0,3,63488,0,0,
  610. 65535,65535,65528,0,0,0,0,504,0,0,0,0,0,0,0,0,0,0,0,
  611. 32767,65535,65520,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,
  612. 32767,65535,65520,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  613. 8191,65535,65472,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  614. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  615. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  616. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  617. };
  618.  
  619. // About bitmap has 2 blank lines around it in every direction.
  620. UWORD chip AboutData[456] =
  621. { /* Plane 0 */
  622.   0,0,0,
  623.   0,0,0,
  624.   4352,0,0,
  625.   4704,0,0,
  626.   2688,1024,0,
  627.   9984,1024,0,
  628.   8128,3584,0,
  629.   1824,3584,0,
  630.   2688,3840,0,
  631.   12864,3840,0,
  632.   1090,34688,0,
  633.   3,51072,128,
  634.   7,33728,256,
  635.   7,33728,1024,
  636.   15375,65535,65216,
  637.   15375,65504,1024,
  638.   7711,57584,256,
  639.   2591,61680,1152,
  640.   60,31864,1024,
  641.   60,7800,0,
  642.   1340,1980,0,
  643.   2040,1020,0,
  644.   1008,254,0,
  645.   1008,126,0,
  646.   480,31,0,
  647.   480,15,0,
  648.   0,0,0,
  649.   0,0,0,
  650.   0,0,0,
  651.   3643,37347,34944,
  652.   4388,37412,19584,
  653.   4388,37380,19584,
  654.   7972,37383,51840,
  655.   4388,37476,18816,
  656.   4388,37412,18816,
  657.   4384,37348,18560,
  658.   0,0,0,
  659.   0,0,0,
  660.   /* Plane 1 */
  661.   0,0,0,
  662.   0,0,0,
  663.   4352,14336,0,
  664.   4704,14336,0,
  665.   2688,30720,0,
  666.   9984,30720,0,
  667.   8128,61440,0,
  668.   1824,61440,0,
  669.   2689,57344,0,
  670.   12865,57344,0,
  671.   1089,16384,1024,
  672.   0,0,9216,
  673.   0,0,4096,
  674.   0,0,1024,
  675.   0,0,65216,
  676.   0,0,1024,
  677.   0,0,4352,
  678.   5140,0,8320,
  679.   3900,0,0,
  680.   3900,0,0,
  681.   1980,0,0,
  682.   2040,0,0,
  683.   1008,0,0,
  684.   1008,0,0,
  685.   480,0,0,
  686.   480,0,0,
  687.   0,0,0,
  688.   0,0,0,
  689.   0,0,0,
  690.   3643,37347,34944,
  691.   4388,37412,19584,
  692.   4388,37380,19584,
  693.   7972,37383,51840,
  694.   4388,37476,18816,
  695.   4388,37412,18816,
  696.   4384,37348,18560,
  697.   0,0,0,
  698.   0,0,0,
  699.   /* Plane 2 */
  700.   0,0,0,
  701.   0,0,0,
  702.   4352,0,0,
  703.   4704,0,0,
  704.   2688,0,0,
  705.   9984,0,0,
  706.   8128,0,0,
  707.   1824,0,0,
  708.   2688,0,0,
  709.   12864,0,0,
  710.   1090,32768,1024,
  711.   3,49152,9344,
  712.   7,32768,4352,
  713.   7,32768,1024,
  714.   15375,0,65024,
  715.   15375,0,1024,
  716.   7710,0,256,
  717.   7690,0,1152,
  718.   3840,0,1024,
  719.   3840,0,0,
  720.   1920,0,0,
  721.   1920,0,0,
  722.   768,0,0,
  723.   768,0,0,
  724.   0,0,0,
  725.   0,0,0,
  726.   0,0,0,
  727.   0,0,0,
  728.   0,0,0,
  729.   3643,37347,34944,
  730.   4388,37412,19584,
  731.   4388,37380,19584,
  732.   7972,37383,51840,
  733.   4388,37476,18816,
  734.   4388,37412,18816,
  735.   4384,37348,18560,
  736.   0,0,0,
  737.   0,0,0,
  738.   /* Plane 3 */
  739.   0,0,0,
  740.   0,0,0,
  741.   4352,14336,0,
  742.   4704,14336,0,
  743.   2688,30720,0,
  744.   9984,30720,0,
  745.   8128,61440,0,
  746.   1824,61440,0,
  747.   2689,57344,0,
  748.   12865,57344,0,
  749.   1091,49152,0,
  750.   3,49152,8320,
  751.   7,32768,4352,
  752.   7,32768,1024,
  753.   15,0,65216,
  754.   15,0,1024,
  755.   30,0,4096,
  756.   30,0,8192,
  757.   60,0,0,
  758.   60,0,0,
  759.   60,0,0,
  760.   120,0,0,
  761.   240,0,0,
  762.   240,0,0,
  763.   480,0,0,
  764.   480,0,0,
  765.   0,0,0,
  766.   0,0,0,
  767.   0,0,0,
  768.   3643,37347,34944,
  769.   4388,37412,19584,
  770.   4388,37380,19584,
  771.   7972,37383,51840,
  772.   4388,37476,18816,
  773.   4388,37412,18816,
  774.   4384,37348,18560,
  775.   0,0,0,
  776.   0,0,0
  777. };
  778.  
  779. // PRIVATE STRUCTURES -----------------------------------------------------
  780.  
  781. struct Image Logo =
  782. {   0, 0,
  783.     295, 110, 4,
  784.     LogoData,
  785.     0x0f, 0x0,
  786.     NULL
  787. };
  788.  
  789. struct Image About =
  790. {   0, 0,
  791.     44, 38, 4,
  792.     AboutData,
  793.     0x0f, 0x0,
  794.     NULL
  795. };
  796. MODULE struct EasyStruct EasyStruct =
  797. {   sizeof(struct EasyStruct),
  798.     0,
  799.     TITLEBAR,
  800.     "Fieldset/highscores have been modified.",
  801.     "Continue|Cancel"
  802. };
  803. struct
  804. {   WORD x, y;
  805.     STRPTR text;
  806. } about[ABOUTLINES + 1] =
  807. {   {72,  27, ABOUTSTRING                  },
  808.     {72,  35, RELEASEDATE                  },
  809.     {72,  51, COPYRIGHT                    },
  810.     {72,  59, "By James R. Jacobs"         },
  811.     {16,  75, "Fieldset size:       bytes" },
  812.     {16,  91, "Kickstart:"                 },
  813.     {16,  99, "Workbench:"                 }
  814. };
  815. struct
  816. {   UBYTE scancode;
  817.     BYTE  player, deltax, deltay, special;
  818.     BOOL  down;
  819. } key[NUMKEYS + 1] =
  820. {   {Q,               0, -1, -1, MOVE,     FALSE},
  821.     {W,               0,  0, -1, MOVE,     FALSE},
  822.     {E,               0,  1, -1, MOVE,     FALSE},
  823.     {A,               0, -1,  0, MOVE,     FALSE},
  824.     {S,               0,  0,  1, MOVE,     FALSE},
  825.     {D,               0,  1,  0, MOVE,     FALSE},
  826.     {Z,               0, -1,  1, MOVE,     FALSE},
  827.     {KEY_X,           0,  1,  1, MOVE,     FALSE},
  828.     {C,               0,  1,  1, MOVE,     FALSE},
  829.     {NUMERICSEVEN,    1, -1, -1, MOVE,     FALSE},
  830.     {NUMERICEIGHT,    1,  0, -1, MOVE,     FALSE},
  831.     {NUMERICNINE,     1,  1, -1, MOVE,     FALSE},
  832.     {NUMERICFOUR,     1, -1,  0, MOVE,     FALSE},
  833.     {NUMERICFIVE,     1,  0,  1, MOVE,     FALSE},
  834.     {NUMERICSIX,      1,  1,  0, MOVE,     FALSE},
  835.     {NUMERICONE,      1, -1,  1, MOVE,     FALSE},
  836.     {NUMERICTWO,      1,  0,  1, MOVE,     FALSE},
  837.     {NUMERICTHREE,    1,  1,  1, MOVE,     FALSE},
  838.     {UP,              1,  0, -1, ONEHUMAN, FALSE},
  839.     {DOWN,            1,  0,  1, ONEHUMAN, FALSE},
  840.     {RIGHT,           1,  1,  0, ONEHUMAN, FALSE},
  841.     {LEFT,            1, -1,  0, ONEHUMAN, FALSE},
  842.     {SPACEBAR,        0,  0,  0, AMMO,     FALSE},
  843.     {NUMERICZERO,     1,  0,  0, AMMO,     FALSE},
  844.     {ENTER,           1,  0,  0, AMMO,     FALSE},
  845.     {HELP,            0,  0,  0, TRAINER,  FALSE},
  846.     {NUMERICSLASH,    0,  0,  0, TRAINER,  FALSE},
  847.     {NUMERICASTERISK, 0,  0,  0, TRAINER,  FALSE},
  848.     {NUMERICPLUS,     0,  0,  0, TRAINER,  FALSE},
  849.     {NUMERICMINUS,    0,  0,  0, TRAINER,  FALSE}
  850. }; /* Never leave unused keys in this structure. */
  851.  
  852. /* #DEFINES -------------------------------------------------------------- */
  853.  
  854. #define ID_8SVX   MAKE_ID('8','S','V','X')
  855. #define ID_BODY   MAKE_ID('B','O','D','Y')
  856. #define ID_VHDR   MAKE_ID('V','H','D','R')
  857. #define PALCLOCK  3546895
  858. #define NTSCCLOCK 3579545
  859. #define SOFT      32
  860. #define LOUD      64 /* = Unity */
  861.  
  862. #define RUNDOWNX      (FIELDCENTREXPIXEL - 152)
  863. #define RUNDOWNX_1ST  32
  864. #define RUNDOWNX_2ND  (32 + (FONTX * 14))
  865. #define RUNDOWNX_3RD  (32 + (FONTX * 21))
  866. #define RUNDOWNX_4TH  (32 + (FONTX * 28))
  867. #define RUNDOWNY      (FIELDCENTREYPIXEL - 32)
  868. #define RUNDOWNY_2ND  12
  869. #define RUNSTRINGLENGTH 27
  870.  
  871. /* PRIVATE STRUCTURES ---------------------------------------------------- */
  872.  
  873. #define INDEX_ANIMATIONS   21
  874. #define INDEX_CREATEICONS  22
  875. #define INDEX_SHOWTITLEBAR 23
  876.  
  877. struct NewMenu NewMenu[] =
  878. {   { NM_TITLE, "Project",        0 , 0,                    0, 0}, //  0
  879.     {  NM_ITEM, "New",           "N", 0,                    0, 0}, //  1
  880.     {  NM_ITEM, "Open...",       "O", 0,                    0, 0}, //  2
  881.     {  NM_ITEM, "Revert",        "R", 0,                    0, 0}, //  3
  882.     {  NM_ITEM, NM_BARLABEL,      0 , 0,                    0, 0}, //  4
  883.     {  NM_ITEM, "Save",          "S", 0,                    0, 0}, //  5
  884.     {  NM_ITEM, "Save As...",    "A", 0,                    0, 0}, //  6
  885.     {  NM_ITEM, NM_BARLABEL,      0 , 0,                    0, 0}, //  7
  886.     {  NM_ITEM, "Delete...",     "D", 0,                    0, 0}, //  8
  887.     {  NM_ITEM, NM_BARLABEL,      0 , 0,                    0, 0}, //  9
  888.     {  NM_ITEM, "Quit",          "Q", 0,                    0, 0}, // 10
  889.     { NM_TITLE, "Edit",           0 , NM_MENUDISABLED,      0, 0}, // 11
  890.     {  NM_ITEM, "Cut",           "X", 0,                    0, 0}, // 12
  891.     {  NM_ITEM, "Copy",          "C", 0,                    0, 0}, // 13
  892.     {  NM_ITEM, "Paste",         "V", 0,                    0, 0}, // 14
  893.     {  NM_ITEM, NM_BARLABEL,      0 , 0,                    0, 0}, // 15
  894.     {  NM_ITEM, "Erase",         "E", 0,                    0, 0}, // 16
  895.     {  NM_ITEM, "Delete",         0 , 0,                    0, 0}, // 17
  896.     {  NM_ITEM, "Insert",         0 , 0,                    0, 0}, // 18
  897.     {  NM_ITEM, "Append",         0 , 0,                    0, 0}, // 19
  898.     { NM_TITLE, "Settings",       0 , 0,                    0, 0}, // 20
  899.     {  NM_ITEM, "Animations?",   "T", CHECKIT | MENUTOGGLE, 0, 0}, // 21
  900.     {  NM_ITEM, "Create Icons?", "I", CHECKIT | MENUTOGGLE, 0, 0}, // 22
  901.     {  NM_ITEM, "Show Titlebar?","B", CHECKIT | MENUTOGGLE, 0, 0}, // 23
  902.     { NM_TITLE, "Help",           0 , 0,                    0, 0}, // 24
  903.     {  NM_ITEM, "Creatures...",  "1", 0,                    0, 0}, // 25
  904.     {  NM_ITEM, "Objects...",    "2", 0,                    0, 0}, // 26
  905.     {  NM_ITEM, NM_BARLABEL,      0 , 0,                    0, 0}, // 27
  906.     {  NM_ITEM, "About...",      "?", 0,                    0, 0}, // 28
  907.     {   NM_END, NULL,             0 , 0,                    0, 0}  // 29
  908. };
  909.  
  910. struct GamePortTrigger Trigger =
  911. {   GPTF_DOWNKEYS,
  912.     65535,
  913.     1, 1
  914. };
  915.  
  916. // gadgets
  917. struct NewGadget StringGadget =
  918. {   0, 0,
  919.     179, 12,
  920.     NULL,
  921.     NULL,
  922.     NULL,
  923.     NULL,
  924.     NULL,
  925.     NULL
  926. };
  927. struct NewGadget ShuffleGadget =
  928. {   0, 0,
  929.     0, 0,
  930.     NULL,
  931.     NULL,
  932.     NULL,
  933.     NULL,
  934.     NULL
  935. };
  936. struct NewGadget CycleGadget =
  937. {   0, 0,
  938.     128, 13,
  939.     NULL,
  940.     NULL,
  941.     NULL,
  942.     NULL,
  943.     NULL,
  944.     NULL
  945. };
  946.  
  947. struct
  948. {   STRPTR filename;
  949.     BYTE   volume;
  950.     ULONG  length[2], size, speed, bank;
  951.     UBYTE* base;
  952. } samp[SAMPLES + 1] =
  953. {   {      "PROGDIR:fx/dog.8svx", SOFT}, /* FXBORN_DOG */
  954.     {     "PROGDIR:fx/rain.8svx", SOFT}, /* FXBORN_RAIN */
  955.     {"PROGDIR:fx/lightning.8svx", LOUD}, /* FXGET_LIGHTNING */
  956.     {  "PROGDIR:fx/missile.8svx", LOUD}, /* FXBORN_MISSILE */
  957.     {  "PROGDIR:fx/protect.8svx", SOFT}, /* FXBORN_PROTECTOR */
  958.     {    "PROGDIR:fx/death.8svx", LOUD}, /* FXDEATH_WORM */
  959.     {  "PROGDIR:fx/enclose.8svx", LOUD}, /* FXDO_ENCLOSE */
  960.     { "PROGDIR:fx/fragment.8svx", SOFT}, /* FXBORN_FRAGMENT */
  961.     {     "PROGDIR:fx/ammo.8svx", LOUD}, /* FXGET_AMMO */
  962.     {  "PROGDIR:fx/cyclone.8svx", LOUD}, /* FXGET_CYCLONE */
  963.     {       "PROGDIR:fx/fx.8svx", SOFT}, /* FXGET_RAIN */
  964.     {   "PROGDIR:fx/grower.8svx", SOFT}, /* FXGET_GROWER */
  965.     {   "PROGDIR:fx/object.8svx", SOFT}, /* FXGET_OBJECT */
  966.     {  "PROGDIR:fx/powerup.8svx", LOUD}, /* FXGET_POWERUP */
  967.     {    "PROGDIR:fx/grave.8svx", SOFT}, /* FXGET_GRAVE */
  968.     {   "PROGDIR:fx/amigan.8svx", SOFT}, /* FXHELP */
  969.     {    "PROGDIR:fx/shoot.8svx", SOFT}, /* FXUSE_AMMO */
  970.     {   "PROGDIR:fx/armour.8svx", SOFT}, /* FXUSE_ARMOUR */
  971.     {     "PROGDIR:fx/bomb.8svx", LOUD}, /* FXUSE_BOMB */
  972.     { "PROGDIR:fx/teleport.8svx", SOFT}, /* FXUSE_TELEPORT */
  973.     {     "PROGDIR:fx/bird.8svx", SOFT}, /* FXBORN_BIRD */
  974.     {    "PROGDIR:fx/green.8svx", SOFT}, /* FXPAIN */
  975.     {      "PROGDIR:fx/red.8svx", SOFT},
  976.     {     "PROGDIR:fx/blue.8svx", SOFT},
  977.     {   "PROGDIR:fx/yellow.8svx", SOFT},
  978.     { "PROGDIR:fx/applause.8svx", SOFT}, /* FXAPPLAUSE (after each new hiscore) */
  979.     { "PROGDIR:fx/gameover.8svx", LOUD}, /* FXGAMEOVER (if all worms are dead) */
  980.     {    "PROGDIR:fx/click.8svx", SOFT}, /* FXCLICK (rundown, keypresses) */
  981.     {     "PROGDIR:fx/riff.8svx", LOUD}, /* FXRIFF (after each rundown) */
  982.     {    "PROGDIR:fx/siren.8svx", SOFT}  /* FXSIREN (out of time) */
  983. };
  984.  
  985. /* ARRAYS -------------------------------------------------------------- */
  986.  
  987. MODULE UBYTE* CycleOptions[4][6] =
  988. { { (UBYTE *) "None",
  989.     (UBYTE *) "Amiga",
  990.     (UBYTE *) "Joystick 3",
  991.     (UBYTE *) "Gamepad 3",
  992.     (UBYTE *) "Lt. Kybd",
  993.     NULL
  994.   },
  995.   { (UBYTE *) "None",
  996.     (UBYTE *) "Amiga",
  997.     (UBYTE *) "Joystick 4",
  998.     (UBYTE *) "Gamepad 4",
  999.     (UBYTE *) "Rt. Kybd",
  1000.     NULL
  1001.   },
  1002.   { (UBYTE *) "None",
  1003.     (UBYTE *) "Amiga",
  1004.     (UBYTE *) "Joystick 2",
  1005.     (UBYTE *) "Gamepad 2",
  1006.     NULL,
  1007.     NULL
  1008.   },
  1009.   { (UBYTE *) "None",
  1010.     (UBYTE *) "Amiga",
  1011.     (UBYTE *) "Joystick 1",
  1012.     (UBYTE *) "Gamepad 1",
  1013.     NULL,
  1014.     NULL
  1015. } };
  1016.  
  1017. MODULE STRPTR sfxerror[] =
  1018. {   "No errors.",
  1019.     "Can't open file!",
  1020.     "Can't read file!",
  1021.     "Not an IFF 8SVX; too short!",
  1022.     "Not an IFF FORM!",
  1023.     "No memory for read!",
  1024.     "Read error!",
  1025.     "Malformed IFF; too short!",
  1026.     "Not an IFF 8SVX!",
  1027.     "No chip memory!"
  1028. };
  1029.  
  1030. /* PUBLIC STRUCTURES ----------------------------------------------------- */
  1031.  
  1032. struct Chunk
  1033. {   LONG          ckID;
  1034.     LONG          ckSize;
  1035.     LONG          ckType;
  1036.     void*         ckData;
  1037.     struct Chunk* ckNext;
  1038. };
  1039.  
  1040. /* TYPEDEFS --------------------------------------------------------------- */
  1041.  
  1042. typedef LONG Fixed;          /* A fixed-point value, 16 bits to the left
  1043.                                 of the point and 16 to the right. A Fixed
  1044.                                 is a number of 2**16ths, ie. 65536ths. */
  1045. typedef struct
  1046. {   ULONG oneShotHiSamples,  /* # samples in the high octave 1-shot part */
  1047.           repeatHiSamples,   /* # samples in the high octave repeat part */
  1048.           samplesPerHiCycle; /* # samples/cycle in high octave, else 0 */
  1049.     UWORD samplesPerSec;     /* data sampling rate */
  1050.     UBYTE ctOctave,          /* # of octaves of waveforms */
  1051.           sCompression;      /* data compression technique used */
  1052.     Fixed volume;            /* playback nominal volume from 0 to Unity
  1053.                                 (full volume). Map this value into the
  1054.                                 output hardware's dynamic range (0-64). */
  1055. } Voice8Header;
  1056.  
  1057. /* Must have blank line at EOF. */
  1058.